package com.dz.reflect;

import java.lang.reflect.*;

public class ReflectDemo08 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, InvocationTargetException, NoSuchMethodException {
        // 1、拿到字节码
        Class cls = Class.forName("com.dz.reflect.Bird");
        // 2、反射构造方法
//        Constructor[] constructors = cls.getConstructors();

//        for (Constructor constructor : constructors) {
//            System.out.println(constructor.getName());
//            System.out.println(Modifier.toString(constructor.getModifiers()));
//            Parameter[] parameters = constructor.getParameters();
//            for (Parameter parameter : parameters) {
//                System.out.println(parameter.getType());
//                System.out.println(parameter.getName());
//            }
//        }
        // 通过无参构造方法创建对象
        Object o = cls.getConstructor().newInstance();
        System.out.println(o);

        // 通过有参构造方法创建对象
        Object o1 = cls.getConstructor(String.class, int.class).newInstance("妮妮", 10);
        System.out.println(o1);


    }

}
